library(tidyverse)
── Attaching packages ──────────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
✔ ggplot2 2.2.1     ✔ purrr   0.2.4
✔ tibble  1.3.4     ✔ dplyr   0.7.4
✔ tidyr   0.7.2     ✔ stringr 1.2.0
✔ ggplot2 2.2.1     ✔ forcats 0.2.0
── Conflicts ─────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
p
No trace type specified:
  Based on info supplied, a 'scatter3d' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter3d
No scatter3d mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
No trace type specified:
  Based on info supplied, a 'scatter3d' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter3d
No scatter3d mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
data.frame(Comp = names(pc$sdev), dev = pc$sdev) %>% 
  mutate(Comp = as.numeric(gsub("Comp.", "", Comp))) %>% 
  mutate(eig = dev^2, perc = eig/sum(eig)) %>% 
  ggplot(aes(x = Comp, y = perc)) +
  geom_bar(stat = "identity")
dist <- dist
LS0tCnRpdGxlOiAiS21lciBBbmFseXNpcyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCgpgYGB7cn0Ka21lcnM0IDwtIHJlYWRfdHN2KCJ+L1B5dGhvbl9Qcm9qZWN0cy9LbWVyVGF4L0RhdGEvZnVsbF9rNC50c3YiLCBjb2xfdHlwZXMgPSBjb2xzKE9UVV9JRCA9IGNvbF9jaGFyYWN0ZXIoKSkpCmttZXJzNSA8LSByZWFkX3Rzdigifi9QeXRob25fUHJvamVjdHMvS21lclRheC9EYXRhL1Y0X0s1LnRzdiIsIGNvbF90eXBlcyA9IGNvbHMoT1RVX0lEID0gY29sX2NoYXJhY3RlcigpKSkKdGF4IDwtIHJlYWRfcmRzKCJ+L1JNQi9SZWZlcmVuY2UvZ2dfb3R1c190YXgucmRzIikKdGF4IDwtIHRheFttYXRjaChrbWVyczQkT1RVX0lELCB0YXgkdmFyaWFibGUpLF0KYGBgCgpgYGB7cn0KcGMgPC0gcHJpbmNvbXAoa21lcnM0WywtMV0pCnBjX2F4ZXMgPC0gY2JpbmQodGF4LCBwYyRzY29yZXMpCnBoeV9jZW50IDwtIHBjX2F4ZXMgJT4lIAogIGdyb3VwX2J5KFBoeWx1bSkKCnBjX2dnIDwtIHBjX2F4ZXMgJT4lIAogIGdncGxvdChhZXMoQ29tcC4xLCBDb21wLjMsIGNvbG9yID0gUGh5bHVtKSkgKwogIGdlb21fcG9pbnQoc2l6ZSA9IDAuMSwgYWxwaGEgPSAwLjMpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIGd1aWRlcyhjb2xvdXIgPSBndWlkZV9sZWdlbmQob3ZlcnJpZGUuYWVzID0gbGlzdChhbHBoYSA9IDEpKSwKICAgICAgICAgc2l6ZSA9IGd1aWRlX2xlZ2VuZChvdmVycmlkZS5hZXMgPSBsaXN0KHNpemUgPSAxKSkpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCgpwIDwtIHBsb3RfbHkocGNfYXhlcywgeCA9IH5Db21wLjEsIHkgPSB+Q29tcC4yLCB6ID0gfkNvbXAuMywgY29sb3IgPSB+UGh5bHVtLCBtYXJrZXIgPSBsaXN0KHNpemUgPSAxKSkgCnAKYGBgCgpgYGB7cn0KZGF0YS5mcmFtZShDb21wID0gbmFtZXMocGMkc2RldiksIGRldiA9IHBjJHNkZXYpICU+JSAKICBtdXRhdGUoQ29tcCA9IGFzLm51bWVyaWMoZ3N1YigiQ29tcC4iLCAiIiwgQ29tcCkpKSAlPiUgCiAgbXV0YXRlKGVpZyA9IGRldl4yLCBwZXJjID0gZWlnL3N1bShlaWcpKSAlPiUgCiAgZ2dwbG90KGFlcyh4ID0gQ29tcCwgeSA9IHBlcmMpKSArCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpCgpgYGAKCmBgYHtyfQpkaXN0IDwtIGRpc3QKYGBgCgo=